// import Vue from 'vue'
// import momentMini from 'moment-mini'

// export function isNull(str) {
//   return !str && str !== 0 && typeof str !== "boolean" ? true : false;
// }
import { isNull, seriesIntArray } from '@/utils/index'

/**
 * 数据预处理
 **/
// 分  转小数带千分号  参数s-数据  n-几位小数    isRmb是否要除100
export function parseNumberToThousands(v, n, isRmb = true) {
  let vType = ''
  let s = String(v)
  // 判断首字符 是否有+- 保存符号类型
  if (s[0] == '-' || s[0] == '+') {
    vType = s[0]
    s = s.substr(1)
  }

  if (Number(s)) {
    s = isRmb ? s / 100 : s
    n = n >= 0 && n <= 20 ? n : 2
    s = parseFloat((s + '').replace(/[^\d\.-]/g, '')).toFixed(n) + ''
    var l = s.split('.')[0].split('').reverse()
    var r = s.split('.')[1]
    var t = ''
    for (let i = 0; i < l.length; i++) {
      t += l[i] + ((i + 1) % 3 == 0 && (i + 1) != l.length ? ',' : '')
    }

    // 过滤类型
    if (isRmb && vType) {
      return `${vType + t.split('').reverse().join('') + '.' + r}`
    } else if (isRmb) {
      return t.split('').reverse().join('') + '.' + r
    } else if (vType && n === 0) {
      return `${vType + t.split('').reverse().join('')}`
    } else if (vType && n !== 0) {
      return `${vType + t.split('').reverse().join('') + '.' + r}`
    } else if (n !== 0) {
      return t.split('').reverse().join('') + '.' + r
    } else {
      return t.split('').reverse().join('')
    }
  } else {
    return 0
  }
}

export function parseSecondsToDuration(data) {
  if (data == null || data === '') return ''
  const second = Number(data)
  const days = Math.floor(second / 86400)
  const hours = Math.floor((second % 86400) / 3600)
  const minutes = Math.floor(((second % 86400) % 3600) / 60)
  const seconds = Math.floor(((second % 86400) % 3600) % 60)
  let duration = ''
  if (days) duration += days + 'd'
  if (hours) duration += (hours > 9 ? hours : '0' + hours) + 'h'
  if (minutes) duration += (minutes > 9 ? minutes : '0' + minutes) + 'm'
  if (seconds) duration += (seconds > 9 ? seconds : '0' + seconds) + 's'
  return duration || '0'
}

export function minsToHourMins(data) {
  if (data == null || data === '' || !data) return '00:00'
  let min = Number(data)
  let str = ''
  if (min > 1440) {
    str += '次日'
    min -= 1440
  }
  const hours = Math.floor((min / 60))
  const minutes = min % 60
  str += (hours > 9 ? hours : '0' + hours) + ':'
  str += (minutes > 9 ? minutes : '0' + minutes)
  return str
}

// 统计时间区间
export function parseDateTotal(startTime, endTime) {
  var aDate, oDate1, oDate2, iDays
  aDate = endTime.split('-')
  oDate1 = new Date(aDate[1] + '-' + aDate[2] + '-' + aDate[0]) // 转换为yyyy-MM-dd格式
  aDate = startTime.split('-')
  oDate2 = new Date(aDate[1] + '-' + aDate[2] + '-' + aDate[0])
  iDays = parseInt((oDate1 - oDate2) / 1000 / 60 / 60 / 24) // 把相差的毫秒数转换为天数
  return iDays + 1 // 返回相差天数
}

// 分转小时分  mm  to HH:mm
export function mm2HHmm(str) {
  if (str !== 0 && str !== '' && str != null) {
    return ((Math.floor(str / 60)).toString().length < 2 ? '0' + (Math.floor(str / 60)).toString()
      : (Math.floor(str / 60)).toString()) + ':' + ((str % 60).toString().length < 2 ? '0' + (str % 60).toString() : (str % 60).toString())
  } else {
    return '00:00'
  }
}

// 小时分分 转 HH:mm  to  mm
export function HHmm2mm(str) {
  if (str !== 0 && str !== '' && str != null && str.split(':').length === 2) {
    return Number(str.split(':')[0] * 60) + Number(str.split(':')[1])
  } else {
    return 0
  }
}

/**
* 转换data=[1,2,3,4,5,6,7]or 1,2,3,4,5,6,7需要按照排序对应周日到周六
*/
export function weekNum2WeekStr(value) {
  let weekStr = ''
  let str = ''
  const weekOptions = {
    1: '周日',
    2: '周一',
    3: '周二',
    4: '周三',
    5: '周四',
    6: '周五',
    7: '周六'
  }
  if (isNull(value)) {
    return ''
  } else if (Array.isArray(value)) {
    if (value.length >= 1) {
      weekStr = Object.assign([], value).sort().join(',')
    } else {
      return ''
    }
  } else {
    weekStr = value
  }
  if (weekStr === '1,7') {
    str = '周六日'
  } else if (weekStr === '2,3,4,5,6') {
    str = '周一到周五'
  } else if (weekStr === '1,2,3,4,5,6,7') {
    str = '周一到周日'
  } else {
    const arr = weekStr.split(',')
    if (arr[0] == 1) {
      arr.splice(0, 1)
      arr.push('1')
    }
    arr.forEach(num => {
      str += weekOptions[num]
    })
  }
  return str
}

/**
* 转换data=[1,2,3,4,5,6,7]or 1,2,3,4,5,6,7 需要按照排序对应1~31号
*/
export function dayNum2DayStr(value) {
  let dayArr = []
  let str = ''
  if (isNull(value)) {
    return ''
  } else if (Array.isArray(value)) {
    dayArr = Object.assign([], value).sort()
  } else {
    dayArr = value.split(',')
  }
  if (dayArr.length === 0) return ''
  const daySeriesArr = seriesIntArray(dayArr)
  daySeriesArr.forEach((v, i) => {
    if (i == 0) {
      str += v[0] + '号'
    } else {
      str += '、' + v[0] + '-' + v[v.length - 1] + '号'
    }
  })
  return str
}
